﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;


/// <summary>
/// Descripción breve de Empresa
/// </summary>
public class Empresa
{
    private string nit;
    private string SectorEmpresarial;
    private string paginaweb;
    private string direccion;
    private int estado;
    private string nombreUsuario;
    private string contrasena;
    private string nombre;
    private string departamento;
    private string municipio;
    private string email;
    private string telefono;
    private string fechaReg;
    private string extension;


    public Empresa(string nit, string SectorEmpresarial, string paginaweb, string direccion, int estado,
        string nombreUsuario, string contrasena, string nombre, string departamento, string municipio, string email, string telefono,
        string fechaReg, string extension)
    {
        this.nit = nit;
        this.SectorEmpresarial = SectorEmpresarial;
        this.paginaweb = paginaweb;
        this.direccion = direccion;
        this.estado = estado;
        this.nombreUsuario = nombreUsuario;
        this.contrasena = contrasena;
        this.nombre = nombre;
        this.departamento = departamento;
        this.municipio = municipio;
        this.email = email;
        this.telefono = telefono;
        this.fechaReg = fechaReg;
        this.extension = extension;

    }

    public Empresa()
    { 
        
    }

    public string ObtNit()
    { return nit; }

    public string ObtSectorEmp()
    { return SectorEmpresarial; }

    public string ObtPaginaWeb()
    { return paginaweb; }

    public int ObtEstado()
    { return estado; }

    public string ObtNombreUsuario()
    { return nombreUsuario; }

    public string ObtContrasena()
    { return contrasena; }

    public string ObtNombre()
    { return nombre; }

    public string ObtDpto()
    { return departamento; }

    public string ObtMcpio()
    { return municipio; }

    public string ObtEmail()
    { return email; }

    public string ObtDir()
    { return direccion; }

    public string ObtTel()
    { return telefono; }

    public String Obtfecha()
    { return fechaReg; }

    public String ObtExtension()
    { return extension; }

    



    public string CrearEmpresa()
    {
       
        
        BD bd = new BD();
        bd.AbrirConexion();
        string insert = bd.Insertar("Empresa", "(nit,SectorEmpresarial_nombreSectorEmpresarial,paginaweb,direccion,estado,nombreUsuario,contrasena,nombre,departamento,municipio,email,telefono,fechaRegistro, extensionTelefonica )",
            "('" + nit + "','" + SectorEmpresarial + "','" + paginaweb + "','" + direccion + "'," + estado + ",'"
            + nombreUsuario + "','" + contrasena + "','" + nombre + "','" + departamento + "','" + municipio + "','" + email + "','" + telefono + "','" + fechaReg + "','" + extension + "')");
        bd.CerrarConexion();
        return insert;
     }

    public void ActualizarEmpresa(string nombre, string secEmp, string paginaweb, string direccion, string nombreUsuario,
        string contrasena, string departamento,string  municipio, string email, string telefono, string extension,  string nitCo)
    {
        BD bd = new BD();
        bd.AbrirConexion();
        bd.Actualizar("empresa", "nombre='" + nombre + "',SectorEmpresarial_nombreSectorEmpresarial='" + secEmp +
            "',paginaweb='" + paginaweb + "',direccion='" + direccion + "',nombreUsuario='" + nombreUsuario + "',contrasena='" + contrasena +
            "',departamento='" + departamento + "',municipio='" + municipio + "',email='" + email + "',telefono='" + telefono +"', extensionTelefonica='" + extension + "'", "nit='"+ nitCo + "'");
        bd.CerrarConexion();

        
        
    }

    public List<Empresa> consultarEmpresa()
    {
        BD bd = new BD();
        bd.AbrirConexion();
        List<Empresa> listemp = new List<Empresa>();
        DataTable dt = bd.Consultar("select * from empresa");
        int cont = 0;

      foreach (DataRow dr in dt.Rows)
        {
           Empresa emp = new Empresa(dt.Rows[cont]["nit"].ToString(),dt.Rows[cont]["SectorEmpresarial_nombreSectorEmpresarial"].ToString(),
               dt.Rows[cont]["paginaweb"].ToString(), dt.Rows[cont]["direccion"].ToString(), Convert.ToInt32(dt.Rows[cont]["estado"]),
               dt.Rows[cont]["nombreUsuario"].ToString(), dt.Rows[cont]["contrasena"].ToString(), dt.Rows[cont]["nombre"].ToString(), dt.Rows[cont]["departamento"].ToString(),
               dt.Rows[cont]["municipio"].ToString(), dt.Rows[cont]["email"].ToString(), dt.Rows[cont]["telefono"].ToString(), dt.Rows[cont]["fechaRegistro"].ToString(), dt.Rows[cont]["extensionTelefonica"].ToString());
            cont++;
            listemp.Add(emp);
        }
        bd.CerrarConexion();
        
        return listemp;
        
    }

    public void cambiarEstado(int estado, string nit)
    {
        BD bd = new BD();
        bd.AbrirConexion();
        bd.Actualizar("Empresa", "estado=" + "'" + estado + "'", "nit=" + "'" + nit + "'");
        bd.CerrarConexion();
    }

    public Empresa BuscarUnicaEmp(string nit)
    { 
        Empresa emp = new Empresa();
        List<Empresa> listEmp = consultarEmpresa();
        foreach (Empresa emps in listEmp)
        { 
            if(emps.ObtNit()== nit)
            {
                emp = emps;
                break;
            }
        }

        return emp;
    }

    public bool EliminarEmpresa(string nit)
    {
        BD bd = new BD();
        bd.AbrirConexion();
        List<Empresa> listemp = new List<Empresa>();
        DataTable dt = bd.Consultar("select nit, empresa_nit from empresa join solicitudpractica ON nit = empresa_nit where nit='" + nit+ "'");
        int cont = 0;

        foreach (DataRow dr in dt.Rows)
        {
            cont++;
            break;
        }

        if (cont == 0)
        {
            bd.Eliminar("empresa", "nit='" +nit +"'");
            bd.CerrarConexion();
            return true;
        }
        else
        {
            bd.CerrarConexion();
            return false;
        }

    }

    public string ConsEmpresaPorIdPractica(int idPractica)
    {
        BD bd = new BD();
        bd.AbrirConexion();
        DataTable dt = bd.Consultar("SELECT Empresa.nombre FROM Practica INNER JOIN SolicitudPractica ON Practica.SolicitudPractica_idSolicitudPractica = SolicitudPractica.idSolicitudPractica INNER JOIN Empresa ON SolicitudPractica.Empresa_nit = Empresa.nit WHERE Practica.idPractica =" + idPractica);
        int cont = 0;
        Empresa emp = new Empresa();
        string nombre="";
        foreach (DataRow dr in dt.Rows)
        {
            nombre = dt.Rows[cont]["nombre"].ToString();
            cont++;
            
        }
        bd.CerrarConexion();

        return nombre;

    }



    



}
